在 Windows 上同时为 Windows 和 WSL 开发 Flutter 应用
这篇文章并不是一个一步到位的配环境教程
如无特别说明 下文所有的 WSL 都指 WSL2
作者的 Flutter SDK 安装在E:\packages\flutter 你可能需要根据自己的环境做调整
使用 本地 Flutter SDK
我们假设你在 Windows 上已经安装了 Flutter SDK, flutter在 PATH 里, Flutter SDK 内容未被直接修改过
对于一个典型的 Ubuntu 22.04.5 LTS WSL 环境, 我们希望通过包管理器安装 Flutter SDK
于是我们在终端输入flutter…
1 | $ flutter |
有经验的读者可能会想到这是LF和CRLF的问题, 可以通过dos2unix来解决
但我们还没装 Flutter SDK 呢
这是 Windows 侧的flutter
1 | $ which flutter |
你大概率是不想用 Windows 侧的 Flutter 的, 除非你希望每次更换平台都重装 dart sdk
1 | $ flutter |
你大概率也不想关闭 WSL 的appendWindowsPath的, 除非你想手动配置 PATH
WSL 访问 Windows 路径看起来好像权限都是rwxrwxrwx的, 但 Windows 也是有权限管理的
我们只需要拒绝对特定文件的执行权限就好了

于是权限变成了-w--w--w-, 也就是只写
那为什么不直接删了呢? 因为删了 flutter 插件就不觉得这是 Flutter SDK 了
解决了这个问题后我们通过 snap 安装了 Flutter SDK
现在我们来运行个项目测试一下
你大概是想把项目放在 Windows 侧的, 因为 Windows 侧的应用不一定支持 UNC 路径
那么在一个在 Windows 下配置过的 Flutter 项目里flutter run…

看起来好像一堆类找不到, 其实是依赖路径有问题
我们当然可以先flutter clean, 但是我们不想每次都先flutter clean
只需要在/里创建对应盘符的软连接就行, 比如
1 | $ ls -l '/E:' |
然后它就能用了
1 | $ flutter run |
Linux 下可能缺少字体, 这和本文无关
别的发行版可能构建本机应用会有问题, 这和本文无关
你可能希望 WSL 与 flutter custom device 集成, 这样就可以通过 IDE 快速运行了
在 Windows 侧
1 | $ flutter config --enable-custom-devices |
编辑~/AppData/Roaming/.flutter_custom_devices.json
有人可能要叫了 “你怎么在 Windows 上用 unix 风格路径名”, 我乐意
1 | { |
1 | $ flutter devices |
添加的设置被标注为mobile问题不大
但不好用 不过能用
当然 更好的方法是等待官方支持远程目标(ssh, wsl, docker)什么的
- 标题: 在 Windows 上同时为 Windows 和 WSL 开发 Flutter 应用
- 作者: 狼(o0kam1)
- 创建于 : 2025-04-08 19:27:13
- 更新于 : 2026-09-14 23:19:34
- 链接: https://o0kam1.dev/2025/04/08/flutter wsl.html
- 版权声明: 本文章采用 CC BY-SA 4.0 进行许可。